<?php
/**
 * Created by PhpStorm.
 * Author: Shadow
 * Date: 2022/1/14
 * Time: 10:16 上午
 * description: Code.php
 * 发送验证码
 */

namespace app\home\business;


use think\Exception;
use think\facade\Cache;

class Code
{
    /**
     * 发送手机短信验证码
     * @param $mobile
     * @return bool
     * @throws Exception
     */
    public static function sendMessage($mobile){
        $key = 'register_code_'.$mobile;# 每个人的手机号独立
        $time_key = 'register_time_'.$mobile;# 存储发送时间
        # 1分钟1一个手机只能发送一次
        # 获取第一发送的时间
        $send_time = Cache::get($time_key);
        # 如果已经发送过了
        if ($send_time && time() - $send_time < 60) {
            throw  new Exception('请求次数过多');
        }
        #生成验证码
        $code = rand(1000,9999);
        # 验证码有效期 5分钟
        # 第一步、存缓存 为了注册的时候、验证
        Cache::set($key,$code,300);
        Cache::set($time_key,time(),120);# 第一次发送验证码的时间
        # 第二步 、调用第三方平台进行发送短信
        return $code;# 为了调试
        $result = send_message($mobile,$code);
        if ($result == 0) {
            return  true;
        } else {
            throw new \Exception('发送失败');
        }
    }

    /**
     * 发送邮箱短信验证码
     */
    public static function sendEmail(){

    }

}